package us.kg.kotoriforest.schedule.dao;

import us.kg.kotoriforest.schedule.pojo.SysSchedule;

import java.util.List;

/**
 * ClassName: us.kg.kotoriforest.schedule.dao.SysScheduleDAO </br>
 * Description: sys_schedule 表的 DAO 接口
 *
 * @author Kotori rotroutine@163.com
 * @since 2024/12/1
 */
public interface SysScheduleDAO {
    /**
     * 根据日程的 sid 查询对应的日常信息
     *
     * @param sid 日常的 sid
     * @return 相关日程所有信息封装而成的 ORM 对象，如果没有查询到则返回 null
     */
    SysSchedule selectBySid(int sid);

    /**
     * 查询所有的日常信息
     * @return 每个日常信息封装成的 ORM 对象集合，如果没有查询到则返回空集合
     */
    List<SysSchedule> selectAll();

    /**
     * 插入一条新日程
     * @param sysSchedule 新日程的所有信息封装成的 ORM 对象，日程的 sid 不需要填写
     * @return 成功则返回值大于 0，失败返回值等于 0
     */
    int insert(SysSchedule sysSchedule);

    /**
     * 更新一条日程
     * @param sysSchedule 更新后日程的信息，日程的 sid 不能更改
     * @return 成功则返回值大于 0，失败返回值等于 0
     */
    int update(SysSchedule sysSchedule);

    /**
     * 删除一条日程
     * @param sid 要删除日程的 sid
     * @return 成功则返回值大于 0，失败返回值等于 0
     */
    int deleteBySid(int sid);

    /**
     * 查询表中一共有多少记录
     * @return 表中记录的条数
     */
    int countAll();
}
